Integrated circuits (ICs) are commonly connected together into a system by interfaces for data transfer and control. Such interfaces may include buses and point-to-point links. Typically, there are additional signals, not directly related to the links, which are implemented to coordinate the actions of the ICs. Such signals include error and debug signals, among other types of signals.
When these signals are run as physical wires, each separate wire must have its own pins, timing specs, voltage specs, etc., which complicates the IC transmitting and the IC receiving the signal. Current systems implement unassigned protocol points on the existing buses or links connecting the ICs to communicate the same information between ICs which would have been carried on discrete wires, thus simplifying the physical interfaces between ICs by eliminating the additional wires.
Such a mechanism is referred to as in-band signaling because the additional information, although not protocol related, is carried as part of the protocol signaling, and thus is in-band to the protocol. For example, one protocol point might indicate that “debug signal A asserted.” Another protocol point would indicate that “debug signal A deasserted”. When a first IC needs to communicate that debug signal A has been asserted to a second IC, the message “debug signal A asserted” is transmitted in the ongoing protocol stream from the first IC to the second IC. When debug signal A deasserts, the first IC sends “debug signal A deasserted” to the second IC.
Although this mechanism of conveying signals between ICs without adding additional wires provides many benefits, there are also significant disadvantages, such as when a number of signals are being transmitted between ICs in this manner.